import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm'; // 引入TypeOrmModule用于完成MySql数据库的连接

import { AppController } from './app.controller';
import { AppService } from './app.service';
import { AuthModule } from './modules/auth/auth.module';
import { BookModule } from './modules/book/book.module';
import { MenuModule } from './modules/menu/menu.module';
import { UserModule } from './modules/user/user.module';
import { TestService } from './test.service';
import { getMysqlUsernameAndPassword } from './utils';

const { username, password } = getMysqlUsernameAndPassword(); // 获取数据库用户名密码

@Module({
  // imports属性：引入的业务模块module
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      // host: '121.36.86.252',
      host: 'localhost',
      port: 3306,
      username,
      password,
      database: 'vben-book-dev', // 数据库名称
      autoLoadEntities: true, // 自动加载实体实例
      // synchronize: true, // 该属性会将实体entity中的表的字段自动的在数据库创建起来 一定不能线上使用
      // logging: true, // 帮助打印执行查询时候所有的 sql 语句
    }),
    UserModule,
    AuthModule,
    BookModule,
    MenuModule,
  ],
  controllers: [AppController],
  providers: [AppService, TestService],
})
export class AppModule {}
